<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Typography Class : CodeIgniter User Guide</title>

<style type='text/css' media='all'>
@import url('../userguide.css');
</style>
<link rel='stylesheet' type='text/css' media='all'
	href='../userguide.css' />

<script type="text/javascript" src="../nav/nav.js"></script>
<script type="text/javascript" src="../nav/prototype.lite.js"></script>
<script type="text/javascript" src="../nav/moo.fx.js"></script>
<script type="text/javascript" src="../nav/user_guide_menu.js"></script>

<meta http-equiv='expires' content='-1' />
<meta http-equiv='pragma' content='no-cache' />
<meta name='robots' content='all' />
<meta name='author' content='ExpressionEngine Dev Team' />
<meta name='description' content='CodeIgniter User Guide' />

</head>
<body>

	<!-- START NAVIGATION -->
	<div id="nav">
		<div id="nav_inner">
			<script type="text/javascript">create_menu('../');</script>
		</div>
	</div>
	<div id="nav2">
		<a name="top"></a><a href="javascript:void(0);"
			onclick="myHeight.toggle();"><img
			src="../images/nav_toggle_darker.jpg" width="154" height="43"
			border="0" title="Toggle Table of Contents"
			alt="Toggle Table of Contents" /></a>
	</div>
	<div id="masthead">
		<table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
			<tr>
				<td><h1>CodeIgniter User Guide Version 2.1.3</h1></td>
				<td id="breadcrumb_right"><a href="../toc.html">Table of
						Contents Page</a></td>
			</tr>
		</table>
	</div>
	<!-- END NAVIGATION -->


	<!-- START BREADCRUMB -->
	<table cellpadding="0" cellspacing="0" border="0" style="width: 100%">
		<tr>
			<td id="breadcrumb"><a href="http://codeigniter.com/">CodeIgniter
					Home</a> &nbsp;&#8250;&nbsp; <a href="../index.html">User Guide
					Home</a> &nbsp;&#8250;&nbsp; Typography Class</td>
			<td id="searchbox"><form method="get"
					action="http://www.google.com/search">
					<input type="hidden" name="as_sitesearch" id="as_sitesearch"
						value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input
						type="text" class="input" style="width: 200px;" name="q" id="q"
						size="31" maxlength="255" value="" />&nbsp;<input type="submit"
						class="submit" name="sa" value="Go" />
				</form></td>
		</tr>
	</table>
	<!-- END BREADCRUMB -->

	<br clear="all" />


	<!-- START CONTENT -->
	<div id="content">


		<h1>Typography Class</h1>

		<p>The Typography Class provides functions that help you format
			text.</p>


		<h2>Initializing the Class</h2>

		<p>
			Like most other classes in CodeIgniter, the Typography class is
			initialized in your controller using the
			<dfn>$this->load->library</dfn>
			function:
		</p>

		<code>$this->load->library('typography');</code>
		<p>
			Once loaded, the Typography library object will be available using:
			<dfn>$this->typography</dfn>
		</p>


		<h2>auto_typography()</h2>

		<p>Formats text so that it is semantically and typographically
			correct HTML. Takes a string as input and returns it with the
			following formatting:</p>

		<ul>
			<li>Surrounds paragraphs within &lt;p&gt;&lt;/p&gt; (looks for
				double line breaks to identify paragraphs).</li>
			<li>Single line breaks are converted to &lt;br /&gt;, except
				those that appear within &lt;pre&gt; tags.</li>
			<li>Block level elements, like &lt;div&gt; tags, are not wrapped
				within paragraphs, but their contained text is if it contains
				paragraphs.</li>
			<li>Quotes are converted to correctly facing curly quote
				entities, except those that appear within tags.</li>
			<li>Apostrophes are converted to curly apostrophe entities.</li>
			<li>Double dashes (either like -- this or like--this) are
				converted to em&#8212;dashes.</li>
			<li>Three consecutive periods either preceding or following a
				word are converted to ellipsis&#8230;</li>
			<li>Double spaces following sentences are converted to
				non-breaking spaces to mimic double spacing.</li>
		</ul>

		<p>Usage example:</p>

		<code>$string = $this->typography->auto_typography($string);</code>

		<h3>Parameters</h3>

		<p>
			There is one optional parameters that determines whether the parser
			should reduce more then two consecutive line breaks down to two. Use
			boolean
			<kbd>TRUE</kbd>
			or
			<kbd>FALSE</kbd>
			.
		</p>

		<p>By default the parser does not reduce line breaks. In other
			words, if no parameters are submitted, it is the same as doing this:</p>

		<code>
			$string = $this->typography->auto_typography($string,
			<kbd>FALSE</kbd>
			);
		</code>


		<p class="important">
			<strong>Note:</strong> Typographic formatting can be processor
			intensive, particularly if you have a lot of content being formatted.
			If you choose to use this function you may want to consider <a
				href="../general/caching.html">caching</a> your pages.
		</p>



		<h2>format_characters()</h2>

		<p>
			This function is similar to the
			<dfn>auto_typography</dfn>
			function above, except that it only does character conversion:
		</p>

		<ul>
			<li>Quotes are converted to correctly facing curly quote
				entities, except those that appear within tags.</li>
			<li>Apostrophes are converted to curly apostrophe entities.</li>
			<li>Double dashes (either like -- this or like--this) are
				converted to em&#8212;dashes.</li>
			<li>Three consecutive periods either preceding or following a
				word are converted to ellipsis&#8230;</li>
			<li>Double spaces following sentences are converted to
				non-breaking spaces to mimic double spacing.</li>
		</ul>

		<p>Usage example:</p>

		<code>$string = $this->typography->format_characters($string);</code>


		<h2>nl2br_except_pre()</h2>

		<p>
			Converts newlines to &lt;br /&gt; tags unless they appear within
			&lt;pre&gt; tags. This function is identical to the native PHP
			<dfn>nl2br()</dfn>
			function, except that it ignores &lt;pre&gt; tags.
		</p>

		<p>Usage example:</p>

		<code>$string = $this->typography->nl2br_except_pre($string);</code>

		<h2>protect_braced_quotes</h2>

		<p>
			When using the Typography library in conjunction with the Template
			Parser library it can often be desirable to protect single and double
			quotes within curly braces. To enable this, set the
			<kbd>protect_braced_quotes</kbd>
			class property to
			<samp>TRUE</samp>
			.
		</p>

		<p>Usage example:</p>

		<code>
			$this->load->library('typography');<br />
			$this->typography->protect_braced_quotes = TRUE;
		</code>

	</div>
	<!-- END CONTENT -->


	<div id="footer">
		<p>
			Previous Topic:&nbsp;&nbsp;<a href="parser.html">Template Parser</a>
			&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp; <a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
			<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
			Next Topic:&nbsp;&nbsp;<a href="unit_testing.html">Unit Testing
				Class</a>
		</p>
		<p>
			<a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp;
			Copyright &#169; 2006 - 2012 &nbsp;&middot;&nbsp; <a
				href="http://ellislab.com/">EllisLab, Inc.</a>
		</p>
	</div>

</body>
</html>